//=============================
// Dashboard ページクラス
//=============================
App.ProjectIndex = function(){
    // スーパークラスコンストラクタ呼び出し
    App.ProjectIndex.superclass.constructor.call(this);
} ;

// App.Pageを継承
Ext.extend(App.ProjectIndex, App.Page, {

	/*==================================================
	 * 関数名：fncRender
	 * 概　要：ページをレンダリングする
	 * 引　数：なし
	 * 戻り値：なし
	 ==================================================*/
	fncRender : function(){
	},
	
	/*==================================================
	 * 関数名：fncSetEvent
	 * 概　要：当該ページのイベントハンドラを設定する
	 * 引　数：なし
	 * 戻り値：なし
	 ==================================================*/
	fncSetEvent : function(){
	},

	/*==================================================
	 * 関数名：onTskReport
	 * 概　要：Todo報告ダイアログ
	 * 引　数：なし
	 * 戻り値：なし
	 ==================================================*/
	onTskReport : function(task_id){
		this.dialogs.ProjectDlgReport.fncShowDialog({
			task_id : task_id,
			on_save : [ this.onTaskReportSave_callback.createDelegate(this) ],
			on_close : []
		}) ;
	},

	/*==================================================
     * 関数名：onTaskReportSave_callback
     * 概　要：タスク保存完了イベント
     *         リストのリロードを実施する。
     * 引　数：なし
     * 戻り値：なし
	 ==================================================*/
    onTaskReportSave_callback : function(){

        var prate = this.dialogs.ProjectDlgReport.progress_rate ;
        var task_id = this.dialogs.ProjectDlgReport.task_id ;

        var row = Ext.get('block_list_task_row_' + task_id) ;
        if( prate == "10" ){
            Ext.DomHelper.applyStyles( row, "color:#cccccc;") ;
        }
        else{
            Ext.DomHelper.applyStyles( row, "color:#000000;") ;
        }

        this.fncExecCallbackFunc("report_save") ;
    },

	/*==================================================
     * 関数名：fncExecCallbackFunc
     * 概　要：コールバック関数が指定されていれば、それを呼び出す
     * 引　数：callback_name    string    コールバック種類文字列
     * 戻り値：なし
	 ==================================================*/
    fncExecCallbackFunc : function( callback_name ){
        if( this.callback == null )    return false ;
        if( this.callback[callback_name] == null )    return false ;
        
        // 指定されているコールバック関数の配列を取得
        var target_callback = this.callback[callback_name] ;
    
        // コールバック関数を順に実施
        if( target_callback != null && target_callback.length > 0 ){
            for( var findex=0 ; findex<target_callback.length ; findex++ ){
                var cb_func = target_callback[findex] ;
                cb_func.call() ;
            }
        }
    },

	/*==================================================
	 * 関数名：onDocLoaded
	 * 概　要：ドキュメントロードイベントハンドラ
	 * 引　数：なし
	 * 戻り値：なし
	 ==================================================*/
	onDocLoaded : function(eventObject, target){
		//-----------------------------
		// スーパークラスの処理を実行
		//-----------------------------
		App.ProjectIndex.superclass.onDocLoaded.call(this, eventObject, target);

		// ページレンダリング
		this.fncRender() ;
		// 各イベント設定
		this.fncSetEvent() ;

	}

});

//=============================
// 現在のページオブジェクトとして生成
//=============================
App.Page.thispage = new App.ProjectIndex() ;
